$(document).ready(function() {
	var id; //声明事件id
	laydate.render({ //时分选择器
		elem: '#timepicker1',
		type: 'time',
		format: 'HH:mm',
		trigger: 'click',
		btns: ['now', 'confirm']
	});
	laydate.render({ //时分选择器
		elem: '#timepicker2',
		type: 'time',
		format: 'HH:mm',
		trigger: 'click',
		btns: ['now', 'confirm']
	});
	laydate.render({ //年月日选择器
		elem: '#J-xl',
		trigger: 'click',
		btns: ['now', 'confirm']
	});
    limitNumber($(".title input"),150,"");
    limitNumber($(".content textarea"),300,"");
	$("#commit").click(function() { //提交或者是修改的函数
		if(parseInt($("#timepicker1").val()) > parseInt($("#timepicker2").val())) { //判断输入内容是否合法
			// centerMsg({
			// 	"message": "info",
			// 	"title": "开始时间不能大于结束时间",
			// 	"cont": "开始时间不能大于结束时间"
			// });
			_alert("开始时间不能大于结束时间");
			return;
		}
		if($.trim($(".dialog2 .title input").val()) == '') {
			// centerMsg({
			// 	"message": "info",
			// 	"title": "提示",
			// 	"cont": "标题不允许为空"
			// });
            _alert("标题不允许为空");
			return;
		};
		if($.trim($(".dialog2 .content textarea").val()) == '') {
			// centerMsg({
			// 	"message": "info",
			// 	"title": "提示",
			// 	"cont": "内容不允许为空"
			// });
            _alert("内容不允许为空");
			return;
		};
		if(changemm($("#timepicker1").val()) >= changemm($("#timepicker2").val())) {
			// centerMsg({
			// 	"message": "info",
			// 	"title": "开始时间不能大于结束时间",
			// 	"cont": "开始时间不能大于结束时间"
			// });
            _alert("开始时间不能大于结束时间");
			return;
		}
		var start = changemm($("#J-xl").val(), $("#timepicker1").val());
		var end = changemm($("#J-xl").val(), $("#timepicker2").val());
		var title = $(".title input").val();
		var content = $("#content").val();
		var importanceLevel = $("#importance_level1 .checked input").val();
		var finished = $("#ornot1 .checked input").val();
		var allday;
		if($(".allDay .checkbox-div span").eq(0).hasClass("active")) { //判断是否是全天
			allday = "01";
		} else {
			allday = "02";
		}
		var obj = {
			"title": title,
			"content": content,
			"startTime": start,
			"endTime": end,
			"importanceLevel": importanceLevel,
			"finished": finished,
			"allday": allday
		}
		var url;
		if($("#myModalLabel").text() == "新建日程") { //判断ajax请求的路径
			url = basePath + "/mark/save";
		} else {
			url = basePath + "/mark/update/" + id;
		}
		$.ajax({ //ajax请求 提交数据
			type: "put",
			url: url,
			data: JSON.stringify(obj),
			contentType: 'application/json',
        	dataType:'json',
			error: function(XmlHttpRequest, textStatus, errorThrown) {
			},
			success: function(result) {
				$("#myModal").modal('hide'); //隐藏模态框
				$("#importance_level1").topNetRadio('emptyInstance'); //清空实例
				$("#ornot1").topNetRadio('emptyInstance'); //清空实例
				$("#calendar").fullCalendar('refetchEvents'); //重新获取数据
			}
		});
	})
	$(".allDay .checkbox-div").click(function() { //全天点击 状态切换和timepicker重新赋值
		if($(this).hasClass("true") == false) {
			$(this).addClass("true").children('.input-checkbox').attr('checked', false);
			$(this).parent('.allDay').siblings('.time').find('.timepicker').eq(0).val('00:00');
			$(this).parent('.allDay').siblings('.time').find('.timepicker').eq(1).val('23:55');
			$(this).find("span").eq(0).addClass("active");
			$('.timepicker').css('display', 'none');
		} else {
			$(this).parent('.allDay').siblings('.time').find('.timepicker').css('display', 'inline');
			$(this).parent('.allDay').siblings('.time').find('.timepicker').eq(0).val('08:00');
			$(this).parent('.allDay').siblings('.time').find('.timepicker').eq(1).val('08:30');
			$(this).find("span").eq(0).removeClass("active");
			$(this).removeClass("true").children('.input-checkbox').attr('checked', true);
		}
	});
	$('#calendar').fullCalendar({ //fullCalendar插件
        // header: { //设置日历头部信息
        //     left: 'prevYear,nextYear,myCustomButton',
        //     center: 'title',
        //     right: 'prev,next today'
        // },
        header: { //设置日历头部信息
            left: '',
            right: 'today',
            center: 'prevYear,prev,,title,next,nextYear',
        },
		fixedWeekCount: false,
		editable: false, //事件是否可编辑
		weekMode: 'liquid',
		// height:'parent',
		defaultView: 'month', //默认视图
		eventLimit: true, // 是否允许多个事件
		firstDay:0,
        aspectRatio:2.19,
        handleWindowResize:false,
		eventClick: function(calEvent, jsEvent, view) {
            $('.modal-content').removeClass("create");
            $('.modal-content').addClass("update");
			$("#importance_level1").topNetRadio('emptyInstance'); //清空实例
			$("#ornot1").topNetRadio('emptyInstance'); //清空实例
			id = calEvent.id; //把事件的id赋值给id
			$("#myModalLabel").text('编辑日程'); //将模态框标题换成修改日程
            $("#commit").text("保存");
			if($('#myModal .modal-footer button').length == 3) { //判断底部按钮是否有删除按钮
				$('#myModal .modal-footer button').eq(2).remove();
			}
			if(calEvent.allday == "true") { //判断获取的事件是否为全天
				$('.timepicker').css('display', 'none');
				$('.timepicker').find('.timepicker').eq(0).val('00:00');
				$('.timepicker').find('.timepicker').eq(1).val('23:55');
				$(".allDay .checkbox-div").addClass("checkbox-active").children('.input-checkbox').attr('checked', true);
				$(".allDay .checkbox-div").children('span').addClass("active");
			} else {
				$(".allDay .checkbox-div").removeClass("checkbox-active").children('.input-checkbox').attr('checked', false);
				$(".allDay .checkbox-div").children('span').removeClass("active");
				$("#timepicker1").val(calEvent.start._i.split('T')[1]);
				$("#timepicker2").val(calEvent.end._i.split('T')[1]);
				$('.timepicker').css('display', 'inline');
			}
            $("#remove").remove();
			$("#myModal .modal-footer").append($('<button type="button" id="remove" class="btn btn-danger">删除</button>')); //动态添加删除按钮
			$("#remove").click(function() { //删除按钮点击事件
				alert('确定要删除吗', id);
			})
			$("#J-xl").val(calEvent.start._i.split('T')[0]); //日期选择器回显值
			$(".title input").val(calEvent.title); //标题回显值
			$(".content textarea").val(calEvent.content); //内容回显值
			$('#importance_level1').topNetRadio('resetRadio') //重要程度回显值
			$('#importance_level1').topNetRadio({
				checkedIds: calEvent.importanceLevel
			})
			$('#ornot1').topNetRadio('resetRadio') //是否完成回显值
			$('#ornot1').topNetRadio({
				checkedIds: calEvent.finished
			})
			$('#myModal').modal({ //打开模态框
				backdrop: false,
				keyboard: false,
				show: true,
			});
		},
		dayClick: function(date, jsEvent, view) {
            $('.modal-content').removeClass("update");
            $('.modal-content').addClass("create");
			$("#importance_level1").topNetRadio('emptyInstance'); //清空实例
			$("#ornot1").topNetRadio('emptyInstance'); //清空实例
			$(".allDay .checkbox-div").removeClass("true").children('.input-checkbox').attr('checked', false); //初始化全天的值
			$(".allDay .checkbox-div").children('span').removeClass("active"); //初始化全天的值
			$(".timepicker").css("display", 'inline'); //初始化时间选择的显示状态
			$("#timepicker1").val('08:00'); //初始化开始时间的值
			$("#timepicker2").val('08:30'); //初始化结束时间的值
			$(".title input").val(''); //初始化标题的值
			$(".content textarea").val(''); //初始化内容的值
			$("#J-xl").val(date.format()); //初始化日期的值
			$('#importance_level1').topNetRadio('resetRadio') //初始化重要程度的值
			$('#importance_level1').topNetRadio({
				checkedIds: '0'
			})
			$('#ornot1').topNetRadio('resetRadio') //初始化是否完成的值
			$('#ornot1').topNetRadio({
				checkedIds: '0'
			})
			if($('#myModal .modal-footer button').length == 2) { //判断是否有删除按钮
				$('#myModal .modal-footer button').eq(1).remove();
			}
			$("#myModalLabel").text('新建日程'); //初始化标题的值
            $("#commit").text("保存");
			$('#myModal').modal({ //打开模态框
				backdrop: false,
				keyboard: false,
				show: true,
			});
		},
		events: function(start, end, timezone, callback) { //事件加载
			setTimeout(function() { //延迟加载 以便获取日历标题的值
				var yy = changeyymm($('#calendar').fullCalendar('getView').title)[0]; //获取年
				var mm = changeyymm($('#calendar').fullCalendar('getView').title)[1]; //获取月
				$.ajax({ //根据年月获取数据
					type: "get",
					url: basePath + "/mark/findByMonth",
					data: {
						"year": yy,
						"month": mm,
					},
					contentType: 'application/x-www-form-urlencoded',
        			dataType:'json',
					error: function(XmlHttpRequest, textStatus, errorThrown) {
					},
					success: function(doc) {
						var events = [];
						events = doc;
                        events.forEach(function (item,index) {
                             switch (item.importanceLevel) {
                                 case "0":item.className="importance0";break;
                                 case "2":item.className="importance1";break;
                                 case "3":item.className="importance2";break;
                             }
                        })
						callback(events); //获取事件后的回调
					}
				});
			}, 30)
		}
	});

	function alert(msg, id) { //alert 函数
		var dlog = dialog({
			title: '提示',
			content: msg,
			reid: id, //将事件id赋值给reid
			okValue: '确定',
			width: 300,
			modal: true,
			cancelValue: '取消',
			cancel: function() {

			},
			ok: function() {
				var that = dlog.reid; //将dlog.reid的地址赋值给that
				$.ajax({ //请求删除的借口
					type: 'delete',
					url: basePath + '/mark/delete/' + dlog.reid,
					contentType: 'application/x-www-form-urlencoded',
        			dataType:'json',
					error: function(XmlHttpRequest, textStatus, errorThrown) {
					},
					success: function(result) {
						$("#myModal").modal('hide');
						$('#calendar').fullCalendar('removeEvents', that); //删除事件
						$("#calendar").fullCalendar('refetchEvents'); //重新渲染
					}
				})
			},
			zIndex: 999999,
			fixed: false,
		});
		dlog.show();
	}
	/*将hh：mm转化成总的分钟*/
	function changemm(hhmm) {
		var hh = hhmm.split(':')[0] * 10 / 10 * 60;
		var mm = hhmm.split(':')[1] * 10 / 10;
		var total = hh + mm;
		return total;
	};

	/*把日期 时分秒 转化成 毫秒数*/
	function changemm(yymmdd, hhmm) {
		var start = yymmdd + " " + hhmm;
		start = start.replace(new RegExp("-", "gm"), "/");
		startss = (new Date(start)).getTime();
		return startss;
	}

	/*将字符串2018年 十二月 返回数组[2018,12]*/
	function changeyymm(str) {
		var month = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"];
		var yy = parseInt(str.split(" ")[0]);
		var mm = month.indexOf(str.split(" ")[1]) + 1;
		mm < 10 ? mm = "0" + mm : mm = mm;
		var yymm = [];
		yymm.push(yy, mm);
		return yymm;
	}
	//返回主页面
	$('.parent-position').click(function() {
		location.reload();
	})
    function _alert(msg) {
        var randomNum = Math.floor(Math.random() * (100) + 1);
        var dlog = dialog({
            title: '提示',
            id: 'randomNum',
            content: msg,
            okValue: '确定',
            cancelValue: '取消',
            width: 300,
            zIndex: 999999,
            fixed: false,
            cancel: function () {

            },
            cancelDisplay: false,
            ok: function () {

            }
        });
        dlog.showModal()
    }
    function limitNumber($el, maxlength,name) {
        var obj = $el.get(0);
        obj.onkeyup = function () {
            var length = $el.val().length;
            if(length > maxlength) {
                _alert( name+ '信息输入过长');
                // alert( name+ '至多只能输入'+maxlength+'字');
                this.value = this.value.substr(0, maxlength);
                return;
            }
        }
    }
});